#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>
/*
   测试两个进程间是否共享文件
   方案：
   1、fork出子进程
   2、在父进程中向文件中写内容
   3、子进程读文件-----与父进程公用一个fd
 */

int main(int argc,char*argv[])
{
	//打开文件，创建文件描述符
	int fd = open("./test.log",O_RDWR | O_CREAT,0777);
	if(fd < 0)
	{
		perror("open error");
		exit(1);
	}
	//forck出子进程
	pid_t pid = fork();

	if(pid < 0)
	{
		perror("fork error");
		exit(1);
	}	
	else if(pid>0)//父进程，返回子进程的pid
	{
		//在父进程中写
		write(fd,"hello word process!",strlen("hello word process!"));
		//将文件指针移到文件开头
		lseek(fd,0,SEEK_SET);
	}
	else if(pid==0)
	{
		//在子进程中读
		char buf[64];
		memset(buf,0,sizeof(buf));
		read(fd,buf,sizeof(buf));
		printf("buf ==[%s]\n",buf);
	}
	close(fd);
	return 0;
}

